<?php
// +----------------------------------------------------------------------
// | Niucloud-admin 企业快速开发的多应用管理平台
// +----------------------------------------------------------------------
// | 官方网址：https://www.niucloud.com
// +----------------------------------------------------------------------
// | niucloud团队 版权所有 开源版本可自由商用
// +----------------------------------------------------------------------
// | Author: Niucloud Team
// +----------------------------------------------------------------------

namespace app\api\model\cart;


use app\api\model\card\Card;
use app\api\model\card\CardSku;
use app\core\base\BaseModel;

/**
 * 寄售车模型
 */
class Cart extends BaseModel
{

    /**
     * 数据表主键
     * @var string
     */
    protected $pk = 'id';

    /**
     * 模型名称
     * @var string
     */
    protected $name = 'wms_product_cart';

    //类型
    protected $type = [

    ];

    /**
     * 搜索器:购物车表ID
     * @param $value
     * @param $data
     */
    public function searchIdAttr($query, $value, $data)
    {
        if ($value) {
            $query->where("id", $value);
        }
    }

    /**
     * 搜索器:购物车会员ID
     * @param $value
     * @param $data
     */
    public function searchMemberIdAttr($query, $value, $data)
    {
        if ($value) {
            $query->where("member_id", $value);
        }
    }

    /**
     * 搜索器:购物车商品ID
     * @param $value
     * @param $data
     */
    public function searchGoodsIdAttr($query, $value, $data)
    {
        if ($value) {
            $query->where("goods_id", $value);
        }
    }

    /**
     * 搜索器:购物车sku id
     * @param $value
     * @param $data
     */
    public function searchSkuIdAttr($query, $value, $data)
    {
        if ($value) {
            $query->where("sku_id", $value);
        }
    }

    /**
     * 搜索器:购物车活动类型
     * @param $value
     * @param $data
     */
    public function searchMarketTypeAttr($query, $value, $data)
    {
        if ($value) {
            $query->where("market_type", $value);
        }
    }

    /**
     * 搜索器:购物车活动id
     * @param $value
     * @param $data
     */
    public function searchMarketTypeIdAttr($query, $value, $data)
    {
        if ($value) {
            $query->where("market_type_id", $value);
        }
    }

    /**
     * 搜索器:购物车添加时间
     * @param $value
     * @param $data
     */
    public function searchCreateTimeAttr($query, $value, $data)
    {
        if ($value) {
            $query->where("create_time", $value);
        }
    }

    /**
     * 搜索器:购物车商品状态
     * @param $value
     * @param $data
     */
    public function searchStatusAttr($query, $value, $data)
    {
        if ($value) {
            $query->where("status", $value);
        }
    }

    /**
     * 搜索器:购物车失效原因
     * @param $value
     * @param $data
     */
    public function searchInvalidRemarkAttr($query, $value, $data)
    {
        if ($value) {
            $query->where("invalid_remark", $value);
        }
    }

    /**
     * 关联商品主表
     * @return \think\model\relation\HasOne
     */
    public function card()
    {
        return $this->hasOne(Card::class, 'id', 'product_id')
            ->joinType('inner')
            ->withTrashed()
            ->withField('id, title, sub_title,ean,tags, thumb, status,rarity')
            ->append([ 'goods_cover_thumb_small', 'goods_cover_thumb_mid', 'goods_cover_thumb_big' ]);
    }

    /**
     * 关联商品规格
     * @return \think\model\relation\HasOne
     */
    public function cardSku()
    {
        return $this->hasOne(CardSku::class, 'id', 'sku_id')
            ->joinType('inner')
            ->withField('id, money_price, product_spec');
    }



}
